﻿using System;
using BCCommon;
using BCDto.MySql.Admin;
using BCDto.OA.PunchEdits;

namespace BCService.OA.PunchEdits
{
    /// <summary>
    /// 打卡服务接口
    /// </summary>
    public interface IPunchEditsService
    {

        /// <summary>
        /// 创建一条打卡信息
        /// </summary>
        /// <param name="punchEditsRequestDto">打卡信息</param>
        /// <returns></returns>
        PunchEditsDto Create(PunchEditsRequestDto punchEditsRequestDto);
        /// <summary>
        /// 删除一条打卡信息
        /// </summary>
        /// <param name="punchEditsNo">打卡信息编号</param>
        /// <returns></returns>
        int Delete(string punchEditsNo);

        /// <summary>
        /// 更新一条打卡信息
        /// </summary>
        /// <param name="punchEditsNo">打卡信息编号</param>
        /// <param name="punchEditsSimPutDto">打卡信息</param>
        /// <returns></returns>
        PunchEditsDto Update(string punchEditsNo, PunchEditsSimPutDto punchEditsSimPutDto);

        /// <summary>
        /// 获取一条打卡信息
        /// </summary>
        /// <param name="punchEditsNo">打卡信息编号</param>
        /// <returns></returns>
        PunchEditsDto Get(string punchEditsNo);

        /// <summary>
        /// 获取打卡信息列表（分页）
        /// </summary>
        /// <param name="adminFullName">员工姓名</param>
        /// <param name="idCard">身份证号</param>
        /// <param name="phone">手机</param>
        /// <param name="adminId">管理员Id</param>
        /// <param name="start">开始时间</param>
        /// <param name="end">结束时间</param>
        /// <param name="ascending">是否升序</param>        
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">页面数据条数</param>
        /// <returns></returns>
        PageableList<PunchEditsInfoDto> List(string adminFullName, string idCard, string phone, long? adminId, DateTime? start, DateTime? end, bool? ascending, int pageIndex, int pageSize);
    }
}
